/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package actions;

import Connexion.ConnexionCustomer;
import actions.facade.FacadeAction;
import java.rmi.RemoteException;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.ejb.FinderException;
import miage.beans.CategoriePresentation;
import miage.beans.ProduitPresentation;
import miage.sessions.ecom.remote.EcomCustomerRemote;

/**
 *
 * @author Pepito
 */
public class PanierAction extends FacadeAction{
    private static EcomCustomerRemote rechercher;
    
    private List<ProduitPresentation> produitDuPanier = new ArrayList<ProduitPresentation>();
    private List<CategoriePresentation> listCategoriePresentation = new ArrayList<CategoriePresentation>();
    private List<Double> prixProduitQuantite = new ArrayList<Double>();
    private double prixProduit = 0.0;
    private double prixTotal = 0.0;
    private String referenceProduit;
    private ProduitPresentation produitDansPanier;
    
    private void initialisationConnexionCustomer(){
        rechercher = ConnexionCustomer.connectionServerBean();
    }

    public ProduitPresentation getProduitDansPanier() {
        return produitDansPanier;
    }

    public void setProduitDansPanier(ProduitPresentation produitDansPanier) {
        this.produitDansPanier = produitDansPanier;
    }

    public String getReferenceProduit() {
        return referenceProduit;
    }

    public void setReferenceProduit(String referenceProduit) {
        this.referenceProduit = referenceProduit;
    }
    
    public String miseAjourDuPanier() throws FinderException, RemoteException{
        produitDansPanier = rechercher.getProduitByReferenceProduit(referenceProduit);
        rechercher.deleteProduitInCart(produitDansPanier);
        System.out.println("Delete du produit effectué");
        return "success";
    }
    public String getNombreProduitDansPanier(){
        initialisationConnexionCustomer();
        
        System.out.println("get nbre produit dans panier");
        
        this.nbProduit = rechercher.nombreProduitInCart();
        System.out.println("sortie du retour du nombre de produit dans panier");
        System.out.println("nbProduit : "+nbProduit);
        getListProduitDuPanier();
        getPrixTotalDeCart();
        getPrixProduitDeCart();
        getListCategorie();
        return "success";
    }

    public List<ProduitPresentation> getProduitDuPanier() {
        return produitDuPanier;
    }
    
    public void setProduitDuPanier(List<ProduitPresentation> produitDuPanier) {
        this.produitDuPanier = produitDuPanier;
    }

    public double getPrixProduit() {
        return prixProduit;
    }

    public void setPrixProduit(double prixProduit) {
        this.prixProduit = prixProduit;
    }
    
    public List<Double> getPrixProduitQuantite() {
        return prixProduitQuantite;
    }

    public void setPrixProduitQuantite(List<Double> prixProduitQuantite) {
        this.prixProduitQuantite = prixProduitQuantite;
    }

    public double getPrixTotal() {
        return prixTotal;
    }

    public void setPrixTotal(double prixTotal) {
        this.prixTotal = prixTotal;
    }
    
    //Actions
    
    public void getListProduitDuPanier(){
        initialisationConnexionCustomer();
        produitDuPanier = rechercher.getProduitDuPanier();
    }
    
    public void getListCategorie(){
        initialisationConnexionCustomer();
        try {
            listCategoriePresentation=rechercher.getAllCategorie();
        } catch (FinderException ex) {
            Logger.getLogger(PanierAction.class.getName()).log(Level.SEVERE, null, ex);
        } catch (RemoteException ex) {
            Logger.getLogger(PanierAction.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    public void getPrixProduitDeCart(){
        initialisationConnexionCustomer();
        prixProduitQuantite = rechercher.getPrixProduits();
    }
    public void getPrixTotalDeCart(){
        initialisationConnexionCustomer();
        prixTotal = rechercher.getPrixTotal();
    }
    public String deleteLePanier(){
        initialisationConnexionCustomer();
        rechercher.clearProduitDuPanier();
        produitDuPanier = rechercher.getProduitDuPanier();
        System.out.println("Produit du panier : "+produitDuPanier.size());
        return "success";
    } 
}